/*That's it, no more user definable variables. Suffer.*/
/*Venture below this point at your own risk!*/
Parse ARG 1 filename viewer
/*i = index(viewer, 'NULL')
if i > 0 then viewer = word(viewer,1)||' '||filename */
viewer = viewer||' '||filename
/*Let's figure out what screen Amiga Mosaic is running on*/
Call open infile,"env:mui/amigamosaic.prefs"
pubtmp=''
Do until (EOF(infile))
inline=readln(infile)
if pos('xBYx',inline)~=0 then pubtmp=inline
end
close(infile)
if pubtmp~='' then pubscreen=right(pubtmp,(length(pubtmp)-pos('xBYx',pubtmp))-4)
else pubscreen=''
q = index(SHOW(P),'AMOSAIC')
if q = 0 then pubscreen=''
say q
/*First we need to create the commandline with filename in place of %s*/
filepos=1
DO UNTIL filepos=0
filepos=INDEX(viewer,"%s")
If filepos>0 Then
DO
cmd1=LEFT(viewer,(filepos-1))
cmd2=RIGHT(viewer,LENGTH(viewer)-(filepos+1))
viewer=cmd1||filename||cmd2
END
END
/*Execute the viewer, and show pretty picture, or mellifluous melody, etc.*/
address command viewer
/*And in the following mess we go about preparing to save the file, or not, */
/*depending on the user setting at the top of this file*/
If savemode>1 Then
DO
SaveFile=filename
Mark=LASTPOS("/",SaveFile)
If Mark==0 Then
Mark=LASTPOS(":",SaveFile)
If Mark>0 Then
SaveFile=Right(SaveFile,LENGTH(SaveFile)-Mark)
filed=0
If savemode=2 Then
DO
if pubscreen~='' then cmdstring='requestfile DRAWER '||savedrawer||' FILE '||SaveFile||' TITLE "Save This Gem Where?" PUBSCREEN '||pubscreen||' > t:savefile'
else cmdstring='requestfile DRAWER '||savedrawer||' FILE '||SaveFile||' TITLE "Save This Gem Where?" > t:savefile'
address command cmdstring
filed=rc
if filed=0 then
DO
SaveFile=''
open(infile, 't:savefile')
do until (eof(infile))
SaveFile = SaveFile||(readln(infile))
end
close(infile)
END
END
Else SaveFile=savedrawer ||'/'||SaveFile
/*After all the above rigamarole, we've either got a filename to save to by now, */
/*or else we've dropped out some time ago. So save it, McCloud. */
if filed=0 then address command 'copy '||filename||' '||savefile
if (filed=0)&(savemode=2) then address command 'delete t:savefile >nil:'
END
/*Yay! Let Mosaic Or ALynx have you back again. They miss you.*/